package teach.fatherson;

public class Son extends Father {

    int num = 10;

    int k = 20;

    int w,x,y,z;

    Son(){

    }

    Son(int a,int b){
        this.w = a;
        this.x = b;
    }
    Son(int a,int b,int c,int d){
        this(a,b);
        //Son(a,b);//构造方法不可以通过方法名调用
        y=c;
        z=d;
    }


    void say(){}

    //返回值是基本数据类型时
    //double say1(){ return 1;}//必须和父类的返回值类型相同
    int say1(){ return 1;}
    //byte say1(){ return 1;}//必须和父类的返回值类型相同


    //返回值是引用数据类型时
    //Object say2(){ return null;}//不允许返回值类型变大
    //Father say2(){ return null;}
    Son say2(){ return null;}
    //返回值类型可以变小,返回值类型在变小，但可用范围在扩大，原因在于向上造型与继承


    //public void finalMethod(int num){}//final修饰的方法，在子类中被禁止进行同签名的重写

    public static void staticMethod(double d1){}

    private void privateMethod(String s1){}
}
